Networked computer systems can transfer multiple data streams concurrently over a communication network. Even if the communication network is able to provide a constant amount of total bandwidth to one of those systems, which is not always the case as the total available bandwidth may change, the bandwidth used by each of the data streams in a multi-stream scenario may be dynamic. Thus, if one data stream attempts to increase its transfer rate, and thereby use more bandwidth, the bandwidth needed to transfer at that increased rate may not be available due to the bandwidth currently being used by other data streams. Likewise, if the total available network bandwidth changes, the amount of bandwidth needed to transfer at that increased rate may not be available regardless of the bandwidth used by other data streams. Going over the available bandwidth may cause quality issues for the data stream, such as lost or delayed data packets. Conversely, the quality of the information in the data may suffer if the bandwidth used by the data stream is kept artificially low (e.g. using greater compression, lower media resolution, etc.) to ensure the available bandwidth is not exceeded.
Accordingly, an ideal scenario for the data channel would be to use as much as possible of the bandwidth available. Current bandwidth estimators attempt to achieve this ideal scenario but cannot respond quickly enough when a data channel increases its bitrate to greater than what the available bandwidth allows. Consequently, packets are lost, even if only briefly, which degrades quality and causes degradation of the user experience at a system at the receiving end of the data channel.